package zust.se.delicious.dao;

import java.util.List;

import zust.se.delicious.domain.User;

public interface UserDao {
	/**
	 * 根据标识属性来加载User实例
	 * 
	 * @param id
	 *            需要加载的User实例的标识属性值
	 * @return 指定标识属性对应的User实例
	 */
	User get(Integer id);

	/**
	 * 持久化指定的User实例
	 * 
	 * @param User
	 *            需要被持久化的User的实例
	 * @return User 实例被持久化后的标识属性值
	 */
	Integer save(User User);

	/**
	 * 修改指定的User实例
	 * 
	 * @param User
	 *            需要被修改的User实例
	 */
	void update(User User);

	/**
	 * 删除指定的User实例
	 * 
	 * @param User
	 *            需要被删除的User实例
	 */
	void delete(User User);

	/**
	 * 根据标识属性删除指定的User实例
	 * 
	 * @param id
	 *            删除指定的User实例的标识属性值
	 */
	void delete(Integer id);

	/**
	 * 查询全部的User实例
	 * 
	 * @return 数据库中全部的User实例
	 */
	List<User> findAll();

	/**
	 * 根据用户迷宫和密码查询用户
	 * 
	 * @return 数据库中对应的User实例
	 */

	User findByNameAndPass(String username, String password);
}
